home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
edit
/
ae_14.zip
/
AE.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-03-21
|
45KB
|
1,060 lines
program AE ;
{$M 16384, 90000, 220000}
{ memory requirements: stack size, min heap size, max heap size }
{$B-} { short-circuit boolean evaluation }
{$I-} { do not generate run-time errors for I/O operations }
{$S+} { stack checking on }
{$V-} { relaxed var string checking }
uses Crt,Dos,Printer,AE0,AE1,AE2,AE3,AE4 ;
const Version = '1.4' ;
Date = '21 Mar 1991' ;
{-----------------------------------------------------------------------------}
{ }
{ AE -- ANOTHER EDITOR }
{ WRITTEN IN TURBO PASCAL 5.5 }
{ }
{-----------------------------------------------------------------------------}
{ KEY DEFINITIONS }
{ }
{ NORMAL SHIFT }
{ -------------------------- ------------------------------ }
{ F1 HELP SETUP }
{ F2 SAVE FILE WRITE TO FILE }
{ F3 LOAD FILE INSERT FILE }
{ F4 FIND FIND & REPLACE }
{ F5 PUT MARK ERASE MARK }
{ F6 CUT BLOCK TO PASTE BUFFER DELETE BLOCK }
{ F7 COPY BLOCK TO PASTE BUFFER COMPARE BLOCK TO PASTE BUFFER }
{ F8 PASTE BLOCK PRINT BLOCK }
{ F9 NEXT WINDOW PREVIOUS WINDOW }
{ F10 DOS COMMAND }
{ }
{ alt 0-9 PLAY MACRO }
{ A SWITCH TO WINDOW A }
{ B }
{ C CENTER LINE }
{ D DEFINE KEYBOARD MACRO }
{ E EJECT PRINTER PAGE }
{ F FORMAT PARAGRAPH }
{ G GET SAVED POSITION }
{ H }
{ I IBM CHARACTER SET (ASCII TABLE) }
{ J JUSTIFY LINE TO RIGHT }
{ K }
{ L DELETE LINE }
{ M MATCH BRACKETS }
{ N NEW (CLEAR FILE BUFFER) }
{ O }
{ P PRINT ENTIRE FILE BUFFER }
{ R REPEAT LAST FIND/REPLACE }
{ S SAVE POSITION }
{ T TOGGLE CASE IN BLOCK }
{ V }
{ W DELETE WORD FORWARD }
{ X EXIT PROGRAM }
{ Y }
{ Z DISPLAY VERSION NUMBER AND DATE }
{ }
{ FIND/REPLACE OPTIONS: I = IGNORE CASE }
{ N = NO QUERY }
{ R = REVERSE SEARCH }
{ }
{ SETUP : E = ENVIRONMENT }
{ K = KEYCLICK (ON/OFF) }
{ B = BELL (ON/OFF) }
{ W = WORD WRAP LENGTH (0 = OFF) }
{ T = TAB SPACING }
{ A = AUTO-INDENT (ON/OFF) }
{ I = INSERT/OVERWRITE }
{ F = FILE }
{ E = SAVE FILES ON EXIT (ON/OFF) }
{ I = INTERVAL FOR AUTO-SAVE (0 = OFF) }
{ B = MAKE .BAK FILE (ON/OFF) }
{ P = PRINTER }
{ P = PAGE LENGTH (0 = OFF) }
{ L = LEFT MARGIN }
{ T = TOP MARGIN }
{ N = PRINT PAGE NUMBERS (ON/OFF) }
{ D = DISPLAY }
{ T = CHANGE CURSOR TYPE }
{ C = CHANGE SCREEN COLORS }
{ D = DISPLAY SPACES AS DOTS (ON/OFF) }
{ S = SAVE SETTINGS }
{ }
{-----------------------------------------------------------------------------}
{-----------------------------------------------------------------------------}
{ Initializes all necessary variables, and loads the file specified on the }
{ command line into the first workspace. }
{-----------------------------------------------------------------------------}
procedure Initialize ;
var Reg : registers ;
Counter : word ;
ConfigFile : file of ConfigBlock ;
ConfigFilePath : PathStr ;
AEDir : DirStr ;
AEName : NameStr ;
AEExt : ExtStr ;
begin
{ check the presence of a color video adapter }
Reg.AH := 15 ;
Intr ($10,Reg) ;
ColorCard := Reg.AL <> Mono ;
{ set start address of screen memory }
if ColorCard
then DisplayPtr := Ptr($B800,0)
else DisplayPtr := Ptr($B000,0);
{ store screen settings }
OrigCursorType := GetCursor ;
OrigTextAttr := TextAttr ;
{ try to find setup file }
ConfigFilePath := '' ;
if Exists(ConfigFileName)
then ConfigFilePath := FExpand (ConfigFileName)
else begin
if Lo(DosVersion) >= 3
then begin
{ look for setup file in directory where AE.EXE is }
FSplit (ParamStr(0),AEDir,AEName,AEExt) ;
if Exists (AEDir+ConfigFileName)
then ConfigFilePath := AEDir + ConfigFileName ;
end
end ;
if Length(ConfigFilePath) > 0
then begin
{ load setup }
Assign (ConfigFile,ConfigFilePath) ;
Reset (ConfigFile) ;
Read (ConfigFile,Config) ;
Close (ConfigFile)
end
else begin
{ no setup file: use default }
Config.Setup := DefaultSetup ;
for Counter := 1 to NrOfMacros do
Config.Macro.Length[Counter] := Inactive ;
end ;
{ set s